62b89655b99c4ca7df90f2a61c53170b316a3725,compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesPropagation.java,SignaturesPropagation,getTypeArgsOfReturnType,#JetType#Collection#,93

Before Change


        TypeConstructor typeConstructor = autoType.getConstructor();
        List<TypeProjection> autoArguments = autoType.getArguments();

        if (!(typeConstructor.getDeclarationDescriptor() instanceof ClassDescriptor)) {
            assert autoArguments.isEmpty() :
                    "Unexpected type arguments when type constructor is not ClassDescriptor, type = " + autoType;
            return autoArguments;

After Change


    @NotNull
    private static List<TypeProjection> getTypeArgsOfReturnType(@NotNull JetType autoType, @NotNull Collection<JetType> typesFromSuper) {
        TypeConstructor typeConstructor = autoType.getConstructor();
        ClassifierDescriptor classifier = typeConstructor.getDeclarationDescriptor();
        List<TypeProjection> autoArguments = autoType.getArguments();

        if (!(classifier instanceof ClassDescriptor)) {
            assert autoArguments.isEmpty() :
                    "Unexpected type arguments when type constructor is not ClassDescriptor, type = " + autoType;
            return autoArguments;
        }

        List<List<TypeProjection>> typeArgumentsFromSuper = calculateTypeArgumentsFromSuper((ClassDescriptor) classifier, typesFromSuper);

        // Modify type arguments using info from typesFromSuper
        List<TypeProjection> resultArguments = Lists.newArrayList();